package net.lahuobao.finance.entity.accredit;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.SequenceGenerator;

/**   
 * @Title: Entity
 * @Description: 授信账户交易明细
 * @author zhangdaihao
 * @date 2016-08-29 15:24:50
 * @version V1.0   
 *
 */
@Entity
@Table(name = "accredit_record", schema = "lahuobao")
@DynamicUpdate(true)
@DynamicInsert(true)
@SuppressWarnings("serial")
public class AccreditRecord implements java.io.Serializable {
	/**交易明细id*/
	private Integer accreditRecordId;
	/**授信账户id*/
	private Integer accreditId;
	/**运单ID*/
	private Integer waybillId;
	/**运费*/
	private BigDecimal carriage;
	/**运输服务管理费*/
	private BigDecimal managementFee;
	/**交易时间*/
	private Date dealTime;
	/**利息类型：1. 按天垫付 2. 按月垫付*/
	private Integer accrualType;
	/**利息费率*/
	private BigDecimal accrualRate;
	/**开始计息时间*/
	private Date accrualStart;
	/**停止计息时间*/
	private Date accrualEnd;
	/**利息: 按天还款默认为0，还款后为真实还款余额。*/
	private BigDecimal accrual;
	/**保险费*/
	private BigDecimal policyFee;
	/**其他业务费用*/
	private BigDecimal otherFee;
	/**操作员id*/
	private Integer operateId;
	/**invoiceRate*/
	private BigDecimal invoiceRate;
	/**代开发票*/
	private BigDecimal invoiceFee;
	/**realCarriage*/
	private BigDecimal realCarriage;
	
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  交易明细id
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name ="ACCREDIT_RECORD_ID",nullable=false,precision=10,scale=0)
	public Integer getAccreditRecordId(){
		return this.accreditRecordId;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  交易明细id
	 */
	public void setAccreditRecordId(Integer accreditRecordId){
		this.accreditRecordId = accreditRecordId;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  授信账户id
	 */
	@Column(name ="ACCREDIT_ID",nullable=false,precision=10,scale=0)
	public Integer getAccreditId(){
		return this.accreditId;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  授信账户id
	 */
	public void setAccreditId(Integer accreditId){
		this.accreditId = accreditId;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  运单ID
	 */
	@Column(name ="WAYBILL_ID",nullable=false,precision=10,scale=0)
	public Integer getWaybillId(){
		return this.waybillId;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  运单ID
	 */
	public void setWaybillId(Integer waybillId){
		this.waybillId = waybillId;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  运费
	 */
	@Column(name ="CARRIAGE",nullable=false,precision=11,scale=2)
	public BigDecimal getCarriage(){
		return this.carriage;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  运费
	 */
	public void setCarriage(BigDecimal carriage){
		this.carriage = carriage;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  运输服务管理费
	 */
	@Column(name ="MANAGEMENT_FEE",nullable=false,precision=11,scale=2)
	public BigDecimal getManagementFee(){
		return this.managementFee;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  运输服务管理费
	 */
	public void setManagementFee(BigDecimal managementFee){
		this.managementFee = managementFee;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  交易时间
	 */
	@Column(name ="DEAL_TIME",nullable=false)
	public Date getDealTime(){
		return this.dealTime;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  交易时间
	 */
	public void setDealTime(Date dealTime){
		this.dealTime = dealTime;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  利息类型：1. 按天垫付 2. 按月垫付
	 */
	@Column(name ="ACCRUAL_TYPE",nullable=false,precision=5,scale=0)
	public Integer getAccrualType(){
		return this.accrualType;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  利息类型：1. 按天垫付 2. 按月垫付
	 */
	public void setAccrualType(Integer accrualType){
		this.accrualType = accrualType;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  利息费率
	 */
	@Column(name ="ACCRUAL_RATE",nullable=false,precision=6,scale=3)
	public BigDecimal getAccrualRate(){
		return this.accrualRate;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  利息费率
	 */
	public void setAccrualRate(BigDecimal accrualRate){
		this.accrualRate = accrualRate;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  开始计息时间
	 */
	@Column(name ="ACCRUAL_START",nullable=true)
	public Date getAccrualStart(){
		return this.accrualStart;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  开始计息时间
	 */
	public void setAccrualStart(Date accrualStart){
		this.accrualStart = accrualStart;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  停止计息时间
	 */
	@Column(name ="ACCRUAL_END",nullable=true)
	public Date getAccrualEnd(){
		return this.accrualEnd;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  停止计息时间
	 */
	public void setAccrualEnd(Date accrualEnd){
		this.accrualEnd = accrualEnd;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  利息: 按天还款默认为0，还款后为真实还款余额。
	 */
	@Column(name ="ACCRUAL",nullable=false,precision=11,scale=2)
	public BigDecimal getAccrual(){
		return this.accrual;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  利息: 按天还款默认为0，还款后为真实还款余额。
	 */
	public void setAccrual(BigDecimal accrual){
		this.accrual = accrual;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  保险费
	 */
	@Column(name ="POLICY_FEE",nullable=false,precision=7,scale=2)
	public BigDecimal getPolicyFee(){
		return this.policyFee;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  保险费
	 */
	public void setPolicyFee(BigDecimal policyFee){
		this.policyFee = policyFee;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  其他业务费用
	 */
	@Column(name ="OTHER_FEE",nullable=false,precision=11,scale=2)
	public BigDecimal getOtherFee(){
		return this.otherFee;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  其他业务费用
	 */
	public void setOtherFee(BigDecimal otherFee){
		this.otherFee = otherFee;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  操作员id
	 */
	@Column(name ="OPERATE_ID",nullable=false,precision=10,scale=0)
	public Integer getOperateId(){
		return this.operateId;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  操作员id
	 */
	public void setOperateId(Integer operateId){
		this.operateId = operateId;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  invoiceRate
	 */
	@Column(name ="INVOICE_RATE",nullable=false,precision=6,scale=3)
	public BigDecimal getInvoiceRate(){
		return this.invoiceRate;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  invoiceRate
	 */
	public void setInvoiceRate(BigDecimal invoiceRate){
		this.invoiceRate = invoiceRate;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  代开发票
	 */
	@Column(name ="INVOICE_FEE",nullable=false,precision=7,scale=2)
	public BigDecimal getInvoiceFee(){
		return this.invoiceFee;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  代开发票
	 */
	public void setInvoiceFee(BigDecimal invoiceFee){
		this.invoiceFee = invoiceFee;
	}
	/**
	 *方法: 取得BigDecimal
	 *@return: BigDecimal  realCarriage
	 */
	@Column(name ="REAL_CARRIAGE",nullable=false,precision=11,scale=2)
	public BigDecimal getRealCarriage(){
		return this.realCarriage;
	}

	/**
	 *方法: 设置BigDecimal
	 *@param: BigDecimal  realCarriage
	 */
	public void setRealCarriage(BigDecimal realCarriage){
		this.realCarriage = realCarriage;
	}
}
